Continuous quality control of long lived software systems
نویسنده
چکیده
Virtually any soware dependent organization has a vital interest in reducing its spending for sowaremaintenance activities. In addition to financial savings, formany organizations, the timeneeded to complete a soware maintenance task largely determines their ability to adapt their business processes to changing market situations or to implement innovative products and services. With the present yet increasing dependency on large scale soware systems, the ability to change existing soware in a timely and economical manner hence becomes critical for numerous enterprises of diverse branches. e ability of a soware system to be changed and extended in an efficient manner is commonly referred to with the termmaintainability. Despite its widely acknowledged importance, many soware developing organizations today do not explicitly define processes nor apply specialized techniques to ensure maintainability. is is especially precarious as the quality of soware systems typically undergoes a gradual decay in the process of their evolution and therefore needs to be controlled continuously. We claim that a major obstacle to a mature discipline of maintainability engineering is posed by the unsatisfyingly vague definitions of maintainability used today. Various approaches, usually in the form of quality models, have been proposed over the last four decades to remedy this problem. However, no comprehensive basis for controlling the maintainability of large soware systems in a continuous manner has been established so far. is thesis proposes a novel approach for modeling maintainability that explicitly associates system properties with the activities carried out during maintenance and thereby facilitates a structured decomposition of maintainability. e separation of activities and properties supports the identification of sound quality criteria and allows to reason about their interdependencies. As the activities are the main cost factor in soware maintenance, we consider this separation a crucial step towards the ultimate goal of a truly economically justified practice of maintainability engineering. e approach is based on a quality metamodel that supports a systematic construction of maintainability models and fosters preciseness as well as completeness. Furthermore, we describe how maintainability models defined by the presented metamodel can be operationalized in the maintenance processes to support continuous quality control. is includes the definition a maintainability assurance process based on the presented concepts and a set of supporting tools. ese tools enable the design of quality models based on our metamodel as well as the automatic generation of guideline documents to communicate quality requirements to the developers. To support quality assurance activities, the tools allow the generation of review checklists and provide an integration of a defined maintainability model with quality assessment tools used for automated analyses. We demonstrate the applicability of our maintainability modeling approach, the generation of developer guidelines and review checklists as well as the integrated use of quality assessment tools in multiple case studies carried out in academical and industrial contexts.
منابع مشابه
Supporting Software-Evolution at the Process Level
The ability to be changeable is inherent to software — in fact, this is what defines it as being “soft”. The long-term management of large software systems depends on the ability of a system to be “easy” to maintain and evolve. In contrast to commonly presented views, we define three ways to look at evolvability. First, it can be considered to be a quality property, and must therefore be subjec...
متن کاملThe Software Design Laboratory
Software Design Laboratory is an undergraduate practicum in software design, which focuses on principles and practices of large-scale software design. Concepts and examples borrowed from elsewhere in Computer Science are applied to the construction of a significant project, namely a command interpreter resembling the Bourne shell. The course focus is on long-lived software systems of a size req...
متن کاملMining Version Control Systems for FACs (Frequently Applied Changes)
Today, programmers are forced to maintain a software system based on their gut feeling and experience. This paper makes an attempt to turn the software maintenance craft into a more disciplined activity, by mining for frequently applied changes in a version control system. Next to some initial results, we show how this technique allows to recover and study successful maintenance strategies, ado...
متن کاملUnderstanding the triaging and fixing processes of long lived bugs
Context: Bug fixing is an integral part of software development and maintenance. A large number of bugs often indicate poor software quality, since buggy behavior not only causes failures that may be costly but also has a detrimental effect on the user’s overall experience with the software product. The impact of long lived bugs can be even more critical since experiencing the same bug version ...
متن کاملTool Support for Decision and Usage Knowledge in Continuous Software Engineering
Continuous software engineering copes with frequent changes and quickly evolving development projects while maintaining a high software quality. Developers require knowledge about former and ongoing decisions as well as about the users’ needs to evolve software. Thus, decision and usage knowledge are two important knowledge types in continuous software engineering. Issue tracking and version co...
متن کامل